let private softmax x =
    let maxElem = List.reduce max x
    let exps = List.map (fun i -> exp (i - maxElem)) x
    let sumExps = List.sum exps
    List.map (fun i -> i / sumExps) exps
let score (input : double list) =
    let func0 =
        if (input.[2]) > (3.1500000000000004) then
            -1.1986122886681099
        else
            if (input.[1]) > (3.35) then
                -0.8986122886681098
            else
                -0.9136122886681098
    let func1 =
        if (input.[2]) > (3.1500000000000004) then
            if (input.[2]) > (4.450000000000001) then
                -0.09503010837903424
            else
                -0.09563272415214283
        else
            if (input.[1]) > (3.35) then
                0.16640323607832397
            else
                0.15374604217339707
    let func2 =
        if (input.[2]) > (1.8) then
            if (input.[3]) > (1.6500000000000001) then
                -1.2055899476674514
            else
                -0.9500445227622534
        else
            -1.2182214705715104
    let func3 =
        if (input.[3]) > (0.45000000000000007) then
            if (input.[3]) > (1.6500000000000001) then
                -0.08146437273923739
            else
                0.14244886188108738
        else
            if (input.[2]) > (1.4500000000000002) then
                -0.0950888159264695
            else
                -0.09438233722389686
    let func4 =
        if (input.[3]) > (1.6500000000000001) then
            if (input.[2]) > (5.3500000000000005) then
                -0.8824095771015287
            else
                -0.9121126703829481
        else
            if (input.[2]) > (4.450000000000001) then
                -1.1277829563828181
            else
                -1.1794405099157212
    let func5 =
        if (input.[2]) > (4.750000000000001) then
            if (input.[2]) > (5.150000000000001) then
                0.16625543464258166
            else
                0.09608601737074281
        else
            if (input.[0]) > (4.950000000000001) then
                -0.09644547407948921
            else
                -0.08181864271444342
    softmax ([(func0) + (func1); (func2) + (func3); (func4) + (func5)])
